﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using IndoReputation.Commons;

namespace IndoReputation.Models.BusinessObject
{
    public class Media : CommonEntity
    {
        /// <summary>
        /// Default Contructor
        /// </summary>
        public Media()
        { }

        [Required]
        public int ID
        {
            set;
            get;
        }

        [Required]
        public int MediaCategoryID
        {
            set;
            get;
        }

        [Required(ErrorMessage = "Please type the Name")]
        [StringLength(256, ErrorMessage = "String may not be longer than 256 characters")]
        [PlaceHolder("Enter name here")]
        public string Name
        {
            set;
            get;
        }

        [StringLength(256, ErrorMessage = "String may not be longer than 256 characters")]
        [PlaceHolder("Enter name of Chief Editor here")]
        public string ChiefEditorName
        {
            set;
            get;
        }

        [StringLength(256, ErrorMessage = "String may not be longer than 256 characters")]
        [PlaceHolder("Enter mobile of Chief Editor here")]
        public string ChiefEditorMobile
        {
            set;
            get;
        }

        [StringLength(256, ErrorMessage = "String may not be longer than 256 characters")]
        [PlaceHolder("Enter email of Chief Editor here")]
        public string ChiefEditorEmail
        {
            set;
            get;
        }

        [StringLength(256, ErrorMessage = "String may not be longer than 256 characters")]
        [PlaceHolder("Enter name of street address here")]
        public string AddStreetName
        {
            set;
            get;
        }

        [StringLength(256, ErrorMessage = "String may not be longer than 256 characters")]
        [PlaceHolder("Enter number of address here")]
        public string AddStreetNumber
        {
            set;
            get;
        }

        [StringLength(256, ErrorMessage = "String may not be longer than 256 characters")]
        [PlaceHolder("Enter name of building here")]
        public string AddBuildingName
        {
            set;
            get;
        }
        [StringLength(256, ErrorMessage = "String may not be longer than 256 characters")]
        [PlaceHolder("Enter name of city here")]
        public string AddCity
        {
            set;
            get;
        }
        [StringLength(256, ErrorMessage = "String may not be longer than 256 characters")]
        [PlaceHolder("Enter name of country here")]
        public string AddCountry
        {
            set;
            get;
        }
        [StringLength(256, ErrorMessage = "String may not be longer than 256 characters")]
        [PlaceHolder("Enter number of phone address here")]
        public string AddPhone
        {
            set;
            get;
        }

        [StringLength(256, ErrorMessage = "String may not be longer than 256 characters")]
        [PlaceHolder("Enter number of fax here")]
        public string AddFax
        {
            set;
            get;
        }

        [StringLength(256, ErrorMessage = "String may not be longer than 256 characters")]
        [PlaceHolder("Enter email of email address here")]
        public string AddEmail
        {
            set;
            get;
        }

        [StringLength(256, ErrorMessage = "String may not be longer than 256 characters")]
        [PlaceHolder("Enter name of website here")]
        public string AddWebsite
        {
            set;
            get;
        }
        public DateTime? FirstTimeLaunched
        {
            set;
            get;
        }
        public Int64? TotalPublishedDaily
        {
            set;
            get;
        }
        public Int64? TotalViewersDaily
        {
            set;
            get;
        }
        public int ViewerTypeID
        {
            set;
            get;
        }
        public Int64? TotalUsers
        {
            set;
            get;
        }

        [Required]
        public int OwnershipTypeID
        {
            set;
            get;
        }

        [Required]
        public int OrientationTypeID
        {
            set;
            get;
        }

        [Required]
        public byte IsFreedom
        {
            set;
            get;
        }

        [Required]
        public int StrongInfluenceTypeID
        {
            set;
            get;
        }

        [Required]
        public int RankTypeID
        {
            set;
            get;
        }

        [DataType(DataType.MultilineText)]
        [StringLength(512, ErrorMessage = "String may not be longer than 512 characters")]
        [PlaceHolder("Enter description here")]
        public string Description
        {
            set;
            get;
        }
        public DateTime? CreateAt
        {
            set;
            get;
        }
        public int? CreateBy
        {
            set;
            get;
        }
        public DateTime? UpdateAt
        {
            set;
            get;
        }
        public int? UpdateBy
        {
            set;
            get;
        }
        public bool? IsEnable
        {
            set;
            get;
        }
    }

    public class MediaJoin : CommonEntity
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public string MediaCategoryName { get; set; }
        public DateTime CreateAt { get; set; }
        public bool IsEnable { get; set; }
    }
}